API: gdk: Change GdkEventOwnerChange to not take GdkNativeWindow
authorBenjamin Otte <otte@redhat.com>
Mon, 31 Jan 2011 05:43:18 +0000 (06:43 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 31 Jan 2011 06:17:31 +0000 (07:17 +0100)
Use GdkWindow instead. This requires calling
gdk_x11_window_foreign_new_for_display(), so might cause a slight
performance penalty, but is required to be portable.

gdk/gdkevents.c
gdk/gdkevents.h
gdk/x11/gdkdisplay-x11.c

index 21c57d56fa68593b2ff3b263196b7f1754d83a33..66a14ec92496dc0fc066bd6f03e9dc3dbf572886 100644 (file)
@@ -567,6 +567,10 @@ gdk_event_copy (const GdkEvent *event)
                                            sizeof (gdouble) * gdk_device_get_n_axes (event->motion.device));
       break;
 
+    case GDK_OWNER_CHANGE:
+      new_event->owner_change.owner = g_object_ref (event->owner_change.owner);
+      break;
+
     default:
       break;
     }
@@ -636,6 +640,10 @@ gdk_event_free (GdkEvent *event)
       g_free (event->setting.name);
       break;
       
+    case GDK_OWNER_CHANGE:
+      g_object_unref (event->owner_change.owner);
+      break;
+
     default:
       break;
     }
index 4786b2f3b778fc5eb75c39c176e3f32e27fe891f..4902601e3c6940dd3324a04da00765e0e64bb993 100644 (file)
@@ -840,7 +840,7 @@ struct _GdkEventOwnerChange
   GdkEventType type;
   GdkWindow *window;
   gint8 send_event;
-  GdkNativeWindow owner;
+  GdkWindow *owner;
   GdkOwnerChange reason;
   GdkAtom selection;
   guint32 time;
index ff74830fbcbd154ed2c79e32d1c1e31254ee5ebb..20735ccf6f0d79a958652fbc6618caea17eb4c77 100644 (file)
@@ -919,7 +919,8 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
          
          event->owner_change.type = GDK_OWNER_CHANGE;
          event->owner_change.window = window;
-         event->owner_change.owner = selection_notify->owner;
+         event->owner_change.owner = gdk_x11_window_foreign_new_for_display (display,
+                                                                              selection_notify->owner);
          event->owner_change.reason = selection_notify->subtype;
          event->owner_change.selection = 
            gdk_x11_xatom_to_atom_for_display (display,